package Offer;

/**
 * @author lakersUp
 * @Classname       Offer67strToInt
 * @Description     将字符串转化为整数, 关键点:处理越界问题
 * @Date 2022/2/28 17:03
 * @Version 1.0
 */
public class Offer67strToInt {
    public int strToInt(String str) {
        char[] chars = str.trim().toCharArray();
        if(chars.length==0){
            return 0;
        }
        int bndry=Integer.MAX_VALUE/10;
        int res=0;
        int sign=1;
        int j=1;
        if(chars[0]=='-'){
            sign=-1;
        }else if(chars[0]!='+'){
            //第一个不是符合号,就从第一个开始遍历
            j=0;
        }
        for(int i=j;i<chars.length;i++){
            if(chars[i]<'0' || chars[i]>'9'){
                break;
            }
            //处理int越界问题
            if(res>bndry || (res==bndry && chars[i]>'7')){
                return sign==1?Integer.MAX_VALUE:Integer.MIN_VALUE;
            }
            res=res*10+(chars[i]-'0');
        }
        return res*sign;
    }
}
